package com.atom.app.mvi.ui.compose

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp

/**
 * https://www.cnblogs.com/guanxinjing/p/16807477.html
 */
class ModifierComposeActivity : ComponentActivity() {
    /**
     * 此篇博客讲解Modifier修饰符的使用，
     * Modifier修饰符的作用是快速的修改组件的显示大小、边距、边框、背景颜色、剪裁、点击等等，
     * Modifier在Compose的全部组件上都有存在，需要熟练的掌握。
     * 另外Modifier是可以被扩展函数扩展的，
     * 所以此篇博客只举例通用的Modifier，
     * 不举例只在某些组件下才能使用的Modifier修饰符(例如Box(align属性)与constraintlayout(constrainAs方法))。
     */
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent { Modifier_Demo() }
    }

    @Preview(name = "add")
    @Composable
    fun PreviewMessageCard() {
        Modifier_Demo()
    }

    @Composable
    fun Modifier_Demo() {
        Surface(
            modifier = Modifier
                .fillMaxSize()
                .background(color = Color.Red),
            color = Color.Blue
        ) {
            Column(
                modifier = Modifier
                    .width(IntrinsicSize.Min)
                    .fillMaxHeight(0.5f)
            ) {
                Text(
                    text = "asdasdad", modifier = Modifier
                        .background(Color.Yellow)
                        .fillMaxHeight(0.5f)
                )
                Text(
                    text = "asdaddddsdaddd",
                    modifier = Modifier
                        .width(IntrinsicSize.Min)
                        .height(IntrinsicSize.Min)
                        .background(Color.Red, shape = RoundedCornerShape(10.dp)),
                    fontSize = 50.sp
                )
            }

        }

    }
}